/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package fait.ferm.ui;

import fait.ferm.global.Glob;
import fait.ferm.persists.Staff_table;
import fait.ferm.tools.Tools;
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.ResourceBundle;
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.ListView;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.StackPane;

/**
 *
 * @author Greg
 */
public class StaffManagementTabController implements Initializable {
    public static boolean notEdit;
    
    public static Staff_table cur_staff; 
    
    @FXML
    public StackPane root;
    @FXML
    public ListView staff_list;
    
    @Override
    public void initialize(URL location, ResourceBundle resources) {
        ObservableList model = staff_list.getItems(); //получаем модель листа
        
        //получаем массив всех сотрудников
        ArrayList<Staff_table> arr = (ArrayList<Staff_table>)Glob.getFermEngine().getStaff_table().obj;
        
        //выводим в лист информацию
        for(final Staff_table cur_staff: arr) {
            
            final BorderPane bp = new BorderPane();
            Label name = new Label(cur_staff.toString()); //имя сотрудника
            Button edit = new Button("ред."); //кнопка для редактирования сотрудника
            
            //обработка нажатия на кнопку редактирования
            edit.setOnAction(new EventHandler<ActionEvent> () {

                @Override
                public void handle(ActionEvent event) {
                    try {
                        StaffManagementTabController.notEdit = false;
                        StaffManagementTabController.cur_staff = cur_staff;
                        //Tools.setCash(cur_staff.getId()); //кэшируем id сотрудника
                        
                        //подгружаем контейнер с диалоговым окном
                        AnchorPane p = (AnchorPane) FXMLLoader.load(getClass().getResource("StaffManagementTabDialog.fxml"));
                        p.managedProperty().set(true);
                        
                        root.getChildren().add(p);
                        p.prefWidthProperty().bind(root.widthProperty());
                        p.prefHeightProperty().bind(root.heightProperty());
                    } catch (IOException ex) {
                        Logger.getLogger(StaffManagementTabController.class.getName()).log(Level.SEVERE, null, ex);
                    }
                }
            });
            
            bp.setLeft(name);
            bp.setRight(edit);
            
            model.add(bp);
        }
    }
    
}
